A Study of Cache Performance in Java Virtual Machines
نویسندگان
چکیده
APPROVED BY SUPERVISING COMMITTEE _________________________ _________________________ iii Acknowledgements I would like to thank Dr. Lizy John for her valuable guidance and advice during the course of this work. I would also like to express my gratitude to Dr Doug Burger for agreeing to be the reader for my report. I also want to thank all the members of the Laboratory for Computer Architecture for all their invaluable help and Java is a widely used programming language due to the portability and machine independent nature of bytecodes. Considering the fact that we have quite a few options available in the execution of Java bytecodes, it is very important to have a clear understanding of the runtime performance aspects in each of the modes. This work attempts to characterize the cache performance of the interpreted, JIT and mixed modes. This study delves deep into the reasons for poor data cache performance in JITs by separating the virtual machine into functionally disparate components and studying cache performance in each of the components. The JIT mode of execution of bytecodes results in a large reduction in the number of native instructions executed but the price to be paid is in the form of poor cache performance. The instruction cache performance in the JIT compilation is always worse than that in the interpreted mode. Data writes exhibit extremely poor performance in JIT modes of execution and the miss rates are on an average 38%. Intelligent translation of Java methods implemented by dynamic profiling in mixed-mode execution engines like HotSpot does not change the overall cache performance of the JVM. We hope that this study serves as a pointer to optimizing specific v sections of the code in the JVM. Our results indicate that the code translation routines of the JIT are good candidates for optimization. We also hope that it would be a guide for architectural enhancements that can mitigate the effect of poor cache performance. An example of such an enhancement could be in the form of directly generating code into an instruction cache that accommodates write operations.
منابع مشابه
Cache Performance in Java Virtual Machines: A Study of Constituent Phases
This paper studies the level 1 cache performance of Java programs by analyzing memory reference traces of the SPECjvm98 applications executed by the Latte Java Virtual Machine. We study in detail Java programs’ cache performance of different access types in three JVM phases, under two execution modes, using three cache configurations and two application data sets. We observe that the poor data ...
متن کاملInvestigating the Interaction between Java Programs and Virtual Machines at the Microarchitectural Level
In recent years, Java workloads are becoming increasingly prominent on the entire scale of computing devices, ranging from small PDA-like systems to high-end web servers. It becomes thus increasingly important to understand the implications of all the aspects involved when running Java applications when a system is designed. This means that first of all, the interactions between the Java applic...
متن کاملAn Instruction Cache Architecture for Parallel Execution of Java Threads
Designing a Java processor supporting horizontal multithreading has been becoming more attractive as network computing gains importance. Different from the traditional superscalar processors that issue multiple instructions from a single instruction stream to exploit the instruction level parallelism (ILP), the horizontal multithreading Java processors issue multiple instructions (bytecodes) fr...
متن کاملFast and Efficient Partial Code Reordering: Taking Advantage of Dynamic Recompilation
Poor instruction cache locality can degrade performance on modern architectures. For example, our simulation results show that eliminating all instruction cache misses improves performance by as much as 16% for a modestly sized instruction cache. In this paper, we show how to take advantage of dynamic code generation in a Java Virtual Machine (VM) to improve instruction locality at run-time. We...
متن کاملA Near Optimal Approach in Choosing The Appropriate Physical Machines for Live Virtual Machines Migration in Cloud Computing
Migration of Virtual Machine (VM) is a critical challenge in cloud computing. The process to move VMs or applications from one Physical Machine (PM) to another is known as VM migration. In VM migration several issues should be considered. One of the major issues in VM migration problem is selecting an appropriate PM as a destination for a migrating VM. To face this issue, several approaches are...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
دوره شماره
صفحات -
تاریخ انتشار 2002